import os
import shutil


def delete_ml(directory_path):
    """
    清空指定目录下的所有内容（包括文件和子目录），但保留该目录本身。
    :param directory_path: 需要清空的目录路径
    """
    if not os.path.exists(directory_path):
        print(f"目录 {directory_path} 不存在")
        return

    for filename in os.listdir(directory_path):
        file_path = os.path.join(directory_path, filename)
        try:
            if os.path.isfile(file_path) or os.path.islink(file_path):
                os.unlink(file_path)  # 删除文件或符号链接
            elif os.path.isdir(file_path):
                shutil.rmtree(file_path)  # 递归删除子目录及其内容
        except Exception as e:
            print(f'Failed to delete {file_path}. Reason: {e}')


